﻿using System;

namespace Sims3Package.Interface
{
    public interface IPackageIndex : ITGIblock
    {
        // Public Property
        /// <summary>
        /// The instance of entry
        /// </summary>
        new ulong ResourceInstance { get; set; }
        /// <summary>
        /// The type of entry
        /// </summary>
        new uint ResourceType { get; set; }
        /// <summary>
        /// The group of entry
        /// </summary>
        new uint ResourceGroup { get; set; }
        /// <summary>
        /// File size of entry
        /// </summary>
        Int32 FileSize { get; }
        /// <summary>
        /// Memory size of entry
        /// </summary>
        Int32 Memsize { get; }
        /// <summary>
        /// Whether entry data is compressed
        /// </summary>
        bool Compressed { get; set; }
        // Private Property
        /// <summary>
        /// Absolute position of chuck data
        /// </summary>
        Int32 Chunkoffset { get; set; }
        /// <summary>
        /// Unknown 1
        /// </summary>
        byte Unknown1 { get; set; }
        /// <summary>
        /// Unknown 2 
        /// </summary>
        UInt16 Unknown2 { get; set; }
        /// <summary>
        /// Get index information in bytes
        /// </summary>
        /// <param name="type">Header type</param>
        /// <returns>bytes containing index information</returns>
        byte[] GetIndexBytes(Int32 type);
    }
}
